﻿using System;
using System.Collections;
using System.Collections.Generic;

namespace Program21
{
    class Program
    {
        static void Main(string[] args)
        {
            //1.{患者：“大夫，我咳嗽得很重。”     大夫：“你多大年记？”     患者：“七十五岁。”     
            //大夫：“二十岁咳嗽吗”患者：“不咳嗽。”     大夫：“四十岁时咳嗽吗？”     
            //患者：“也不咳嗽。”     大夫：“那现在不咳嗽，还要等到什么时咳嗽？}
            //找出第1次出现咳嗽的位置是第几个字符
            Wen("患者：“大夫，我咳嗽得很重。”     大夫：“你多大年记？”     患者：“七十五岁。”     大夫：“二十岁咳嗽吗”患者：“不咳嗽。”     大夫：“四十岁时咳嗽吗？”     患者：“也不咳嗽。”     大夫：“那现在不咳嗽，还要等到什么时咳嗽？");

            //2.将字符串"  hello      world,你  好 世界   !    "
            //两端空格去掉，并且将其中的所有其他空格都替换成一个空格，
            //输出结果为："hello world,你 好 世界 !"。
            qkg("  hello      world,你  好 世界   !    ");
            //3.存储用户输入的姓名，回车存储；只要用户不输入‘quit’就可以一直输入。
            //输入quit后打印出所有刚才输入的姓名，统计个数
            names();
            //4.请将字符串数组{ "中国", "美国", "巴西", "澳大利亚", "加拿大" }中的内容反转。然后输出反转后的数组。不能用数组的Reverse()方法
            fanzhuan(new string[] { "中国", "美国", "巴西", "澳大利亚", "加拿大" });
            //5. 用方法来实现：计算两个数的最大值。 扩展：计算任意多个数间的最大值
            Console.WriteLine();
            Console.WriteLine("最大值:"+MaxSum(5,2,0,7,1,6));

        }

        public static void Wen(string s1)
        {
            //找出第1次出现咳嗽的位置是第几个字符
            //记录“咳嗽”出现的次数
            int count = 0;
            //记录从哪里开始查找
            int index = 0;
            if((index = s1.IndexOf("咳嗽", index)) != -1)    
            //indenof指定字符串在此第一次出现的索引位置
            {
                index += "咳嗽".Length;
                count++;
                Console.WriteLine(index);
            }
            Console.WriteLine(count);
        }

        public static void qkg(string s1)
        {
            //两端空格去掉，并且将其中的所有其他空格都替换成一个空格，
            string msg = s1.Trim();  //去掉首尾空格
            //使用split分割字符串，stringSplitOptions枚举去掉空格返回字符串数组类型
            string[] s = msg.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            //for (int i = 0; i < s.Length; i++)
            //{
            //    Console.WriteLine(s[i]);
            //}
            //在使用字符串join连接参数，它string数据s 用空格连接起来
            string m = string.Join(" ", s);
            Console.WriteLine(m);
            Console.ReadKey();
        }

        public static void names()
        {
            //3.存储用户输入的姓名，回车存储；只要用户不输入‘quit’就可以一直输入。
            //输入quit后打印出所有刚才输入的姓名，统计个数
            ArrayList arrayList = new ArrayList();
            string name = "";
            while (name != "quit")
            {
                Console.WriteLine("请输入您想记录得名字（输入quit时停止记录）");
                name = Console.ReadLine();
                if (name != "quit")
                arrayList.Add(name);
                
            }
            //Console.Clear();//清空控制台
            foreach(string i in arrayList)
            {
                Console.WriteLine(i);
            }
            Console.WriteLine("一共记录了" + arrayList.Count+"个名字。");
        }

        public static void fanzhuan(string[] s1)
        {
            string o = "";
            for (int i = 0; i < s1.Length/2; i++)
            {
                if (i != s1.Length-1 - i)
                {
                    o = s1[i];
                    s1[i] = s1[s1.Length - 1 - i];
                    s1[s1.Length - 1 - i] = o;
                    
                }
            }
            foreach(string i in s1)
            {
                Console.Write(i + ",");
            }
        }
        public static int MaxSum(params int[] list)
        {
            int max = list[0];
            for(int i = 1; i < list.Length; i++)
            {
                if (max < list[i])
                {
                    max = list[i];
                }
            }
            return max;
        }


    }
}
